package com.itheima.test;

/**
 * @Author 王加鑫
 * @Date 2021/4/14 19:03
 * @Version 1.0
 * 自动类型转换和强制类型转换
 */
public class ConversionDemo {
    public static void main(String[] args) {
       test1();
       test2();
       test3();

    }

    /**
     * 自动类型转换
     */
    public static void test1(){
        byte b = 10;
        char c = '王';
        int i = b + c;
        System.out.println(i);
    }

    /**
     * 强制类型转换
     */
    public static void test2(){
        byte b = 10;
        char c = '王';
        byte i = (byte) (b + c);
        System.out.println(i);
    }
                   
    /**
     * 常量优化机制
     */
    public static void test3(){
        byte a = 10;
        byte b = 20;
        /*
        虽然10和20相加时,会自动转换成int类型
        按理来说应该会报错呀?需要用到强制类型转换呀!
        原因:
            由于Java的常量优化机制,所以10和20相加过后
            会自动转换成byte类型
         */
        byte c = 10 + 20;
        // byte c1 = a + b;
        System.out.println(c);

    }

}
